From: Giovanni Campagna Date: Thu, 17 Jan 2013 21:11:01 +0000 (+0100) Subject: PointerWatcher: keep a reference to the idle monitor X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5061 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=56d76791f1570054fa5125d6b0b28c398d2521d2;p=gnome-shell.git PointerWatcher: keep a reference to the idle monitor If nothing references the idle monitor, it can be finalized at GC, causing it to have no effect. Worse, if the finalization happens at wrong time, the pointer watcher can be permanently off, disabling the message tray. https://bugzilla.gnome.org/show_bug.cgi?id=691976 --- diff --git a/js/ui/pointerWatcher.js b/js/ui/pointerWatcher.js index 9f7f2909c..dc31a1dd8 100644 --- a/js/ui/pointerWatcher.js +++ b/js/ui/pointerWatcher.js @@ -41,10 +41,10 @@ const PointerWatcher = new Lang.Class({ Name: 'PointerWatcher', _init: function() { - let idleMonitor = new GnomeDesktop.IdleMonitor(); - idleMonitor.connect('became-active', Lang.bind(this, this._onIdleMonitorBecameActive)); - idleMonitor.add_watch(IDLE_TIME, Lang.bind(this, this._onIdleMonitorBecameIdle)); - this._idle = idleMonitor.get_idletime() > IDLE_TIME; + this._idleMonitor = new GnomeDesktop.IdleMonitor(); + this._idleMonitor.connect('became-active', Lang.bind(this, this._onIdleMonitorBecameActive)); + this._idleMonitor.add_watch(IDLE_TIME, Lang.bind(this, this._onIdleMonitorBecameIdle)); + this._idle = this._idleMonitor.get_idletime() > IDLE_TIME; this._watches = []; this.pointerX = null; this.pointerY = null;